package com.lingjtx.common.captcha;


import com.lingjtx.common.core.constant.RedisConfig;

import java.lang.annotation.*;

@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface NeedCaptcha {

    // 设计流程：调用某接口时，返回205（需要人机验证），data数据中包含底图，滑块图，点选文字，本次验证码的唯一uid等信息一起返回前端。
    // 服务器根据验证码uid缓存本次坐标位置信息
    // 前端界面展示某种人机验证
    // 人为验证后，调用第一次验证接口，把坐标信息加密后发送服务器验证。服务器验证坐标信息是否正确，
    // 如果验证成功：1、删掉缓存，2、生成第二次验证的令牌，3、缓存第二次验证令牌
    // 在本次业务接口中参数中加入第二次验证的验证码类型和验证令牌
    // 验证令牌是否有效

    CaptchaType type() default CaptchaType.BLOCK_PUZZLE;

    // 同一会话中，同一个接口访问多少次，弹出人机验证
    int nums() default 0;

    // 验证码有效期
    long expire() default RedisConfig.TIMEOUT_SMS_CODE;
}
